#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time

from kpautos.engine.case import Case
from kptest.config.enum import DeviceType, HostType, DeviceUtility



class BMC_SSH_007(Case):
    """
        Name:
            BMC_SSH_007
        Label:
            定位功能测试
        PreCondition:
            1、BMC正常运行
        TestStep:
            1.点亮定位灯，查看定位灯状态，有结果A）
            iBMC:/->ipmcset -d identify -v force
            2.定位灯闪烁15秒，有结果A）
            iBMC:/->ipmcset -d identify -v 15
            3.定位灯关闭，有结果A
            iBMC:/->ipmcset -d identify -v 0
        ExpectedResult:
            A) 命令执行成功
        Parameters:

        Remark:

    """

    # 测试执行前配置等准备操作
    def pre_test_case(self):
        self.device_dut = self.resource.get_device(device_type=DeviceType.Server, utility=DeviceUtility.DUT)
        self.bmc_host = self.device_dut.get_host(host_type=HostType.BMC)
        self.bmc_cli_api = self.device_dut.get_api("KunTaiCli", api='kptest_extension_api', dispatcher=self.bmc_host)

    # 测试步骤
    def procedure(self):
        self.log_step("1、执行ipmcset -d identify -v force命令，点亮定位灯")
        result = self.bmc_cli_api.set_position_light_force()
        if result == None:
            raise Exception("点亮定位灯失败")
        self.log_info("点亮定位灯成功")
        self.log_step("2、执行ipmcset -d identify -v 15命令，使定位灯闪烁")
        result = self.bmc_cli_api.set_position_light_sparkle()
        if result == None:
            raise Exception("定位灯闪烁失败")
        time.sleep(5)
        self.log_info("定位灯闪烁成功")
        self.log_step("3、执行ipmcset -d identify -v 0命令，关闭定位灯")
        result = self.bmc_cli_api.set_position_light_off()
        if result == None:
            raise Exception("定位灯关闭失败")
        time.sleep(5)
        self.log_info("定位灯关闭成功")



    # 测试结束后恢复环境
    def post_test_case(self):
        pass